package com.hxkj.service;

import com.github.pagehelper.PageInfo;
import com.hxkj.domain.po.LabelExt;
import com.hxkj.domain.po.LabelManagement;
import com.hxkj.domain.po.LabelUsageInfo;
import com.hxkj.domain.vo.LabelManagementVO;
import com.platform.common.domain.result.ResultDataStruct;
import com.platform.common.domain.result.ResultMessageStruct;
import com.platform.common.domain.to.PageTo;

import java.util.List;
import java.util.Map;

public interface LabelConfService {

    /**
     * 新增
     * @param map
     * @return
     * @throws Exception
     */
    ResultMessageStruct save(Map<String, Object> map) throws Exception;

    ResultMessageStruct saveLabel(LabelManagement labelManagement) throws Exception;

    /**
     * 获取单条数据
     * @param labelManagement
     * @return
     * @throws Exception
     */
    ResultDataStruct<LabelManagement> get(LabelManagement labelManagement) throws Exception;



    /**
     * 列表
     * @param labelManagement
     * @return
     * @throws Exception
     */
    PageInfo<LabelManagementVO> getLabelList(LabelManagement labelManagement, PageTo pageParam) throws Exception;

    /**
     * 修改
     * @param map
     * @return
     * @throws Exception
     */
    ResultMessageStruct modify(Map<String, Object> map)throws Exception;

    /**
     * 删除
     * @param labelIds
     * @return
     * @throws Exception
     */
    ResultMessageStruct remove(String labelIds)throws Exception;


    ResultMessageStruct editLabelPlus(Map<String, Object> map) throws Exception;

/************************标签扩展表相关业务****************************/


    /**
     * 新增
     * @param labelExt
     * @return
     * @throws Exception
     */
    ResultMessageStruct saveLabelExt(LabelExt labelExt) throws Exception;

    /**
     * 列表
     * @param labelExt
     * @return
     * @throws Exception
     */
    ResultDataStruct<List<LabelExt>> getLabelExt(LabelExt labelExt) throws Exception;

    /**
     * 修改
     * @param labelExt
     * @return
     * @throws Exception
     */
    ResultMessageStruct modifyLabelExt(LabelExt labelExt)throws Exception;

    /**
     * 删除
     * @param labelExt
     * @return
     * @throws Exception
     */
    ResultMessageStruct removeLabelExt(LabelExt labelExt)throws Exception;



/************************标签使用情况表相关业务****************************/



    /**
     * 新增
     * @param labelUsageInfo
     * @return
     * @throws Exception
     */
    ResultMessageStruct saveLabelUsage(LabelUsageInfo labelUsageInfo) throws Exception;

    /**
     * 列表
     * @param labelUsageInfo
     * @return
     * @throws Exception
     */
    ResultDataStruct<List<LabelUsageInfo>> getLabelUsage(LabelUsageInfo labelUsageInfo) throws Exception;

    /**
     * 修改
     * @param labelUsage
     * @return
     * @throws Exception
     */
    ResultMessageStruct modifyLabelUsage(LabelUsageInfo labelUsage)throws Exception;

    /**
     * 删除
     * @param labelUsage
     * @return
     * @throws Exception
     */
    ResultMessageStruct removeLabelUsage(LabelUsageInfo labelUsage)throws Exception;


}
